Method and program of converting three-dimensional shape data into cell internal data

ABSTRACT

A method of converting three-dimensional shape data into cell internal data. The method includes an oct-tree division step of dividing external data including boundary data of a target object into rectangular parallelepiped cells having boundary planes orthogonal to each other by oct-tree division. The method further includes a cell classification step of classifying each of the cells into an internal cell positioned inside or outside the target object or a boundary cell including the boundary data, and a cut point determination step of determining cut points of edges of the boundary cell based on the boundary data. The method further includes a boundary surface determination step of connecting cut points to form a polygon, and determining the polygon as the cell internal data when the number of the determined cut points is no fewer than 3 and no more than 12.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a storing method of storing, with a small memory capacity, substantial data that is configured by integrating shape data and physical property data so that CAD and simulation can be integrated. Specifically, the present invention relates to a method and program of converting three-dimensional shape data into internal data of a cell by oct-tree division.

2. Description of the Related Art

In the field of leading-edge research and technology development, as the research and technology is highly developed and complicated, it becomes inevitable to perform a process of trial and error many times, so that a risk of failure in the development process is raised. In order to lead in science and technology, it is very important to avoid such a risk as much as possible, and to make innovative advancement and efficiency promotion.

At present, in the field of research and technology development, CAD (Computer Aided Design), CAM (Computer Aided Manufacturing), CAE (Computer Aided Engineering), CAT (Computer Aided Testing) are used as simulation means for designing, processing, analyzing, and testing, respectively.

Further, the C-Simulation (Corporative Simulation) that is successive simulation, A-CAM (Advanced CAM) that takes processing into account, and D-fabrication (Deterministic Fabrication) that achieves ultimate accuracy will become widespread by the present invention.

When using the above-mentioned simulation means, data of a target object is stored by CSG (Constructive Solid Geometry) or B-rep (Boundary Representation).

However, in the case of CSG, an entire target object is stored as an aggregation of minute solid models. Accordingly, the data amount becomes large, and simulation means (software, for example) handles a large amount of data. Therefore, there is a problem in that even a large computer takes much time to perform data analyzing.

In the case of B-rep, since the target object is represented by the boundary, the data amount becomes small. However, the information about the inside of the boundary surface cannot be obtained directly, and there is a problem in that the data itself is not suitable to deforming analysis.

Furthermore, according to the above-mentioned conventional data storing means, each time heat/fluid analysis, largely deforming analysis of a solid, or coupled analysis of them is performed, the data is divided into meshes suitable to the analysis, and a finite element method or the like is used. The result of the analysis can be displayed, for example, but it is difficult to integrate CAD and simulation. Accordingly, there is a problem in that respective processes of designing, analyzing, processing, assembling, testing, and so on cannot be managed by using the same data.

In other words, the conventional Solid/Surface-CAD (hereinbelow, referred to as S-CAD) has the following problems.

(1) The data communication, and internal converting operation of the data are poor (that is, there is a problem of a numerical value error and a process method).

(2) The data cannot be applied directly to the simulation (that is, since the data does not include the internal data, the meshes need to be generated).

(3) It is not possible to consider how to perform the processing by CAM (there is only a final shape).

Further, there are the following problems regarding the processing.

(1) It is not possible to represent the processing (the aid of rough processing and aid of process designing are inadequate).

(2) The data cannot cope with a new processing method such as laser processing and ultra front edge processing (that is, other processing except cutting processing cannot be performed, and numerical value accuracy is inadequate).

(3) A processing method cannot be selected when a target object is a complex having different material properties inside.

In order to solve the above problems, prior to the present patent application, the inventor(s) of the present invention made the invention “Method of Storing Substantial Data Configured by Integrating Shape Data and Physical Property Data” that was filed as Japanese patent application No. 2001-25023).

According to this prior invention, as schematically shown in FIG. 1, external data including boundary data of a target object is divided into rectangular parallelepiped cells by oct-tree division. Each of rectangular parallelepiped cells has boundary faces orthogonal to each other. Then, each cell is classified into an internal cell 13 a positioned inside or outside the target object or a boundary cell 13 b including a boundary face. In FIG. 1, the reference numeral 15 designates a cut point.

With this prior invention, various physical property values are stored in respective cells so that the integrated substantial data of the shape data and the physical property data can be stored by using a small memory capacity. Thereby, it is possible to achieve integral management of shape data, structure data, physical property data, and history of a target object. Accordingly, data about a series of processes including designing, processing, assembling, testing, evaluating, and the like can be managed by the same data, and CAD and simulation can be integrated.

In the case of this storing method (hereinbelow, referred to as “volume CAD” or “V-CAD”) of storing substantial data, the boundary data for restructuring the boundary surface of the three-dimensional shape data (external data) needs to be held in the boundary cell.

If the boundary data cannot maintain continuity with the neighboring cells, when the surface of the cell is divided into triangle-shaped meshes, a gap (crack), a minute triangle, or a thin long triangle is generated. Therefore, a problem arises in that accurate simulation cannot be performed.

Meanwhile, there is a known method (crack patch method) of filling up a gap between the triangle meshes that is generated between different size volumes. However, in this method, the gap is simply filled up so that the triangle meshes sharing the edge thereof and making a sharp angle therebetween are generated at the position where the original surface is smooth. In order to solve this problem, Japanese Laid-Open Patent Publication No. 2001-22961 proposes “Method of Generating Same Phase Surface from Non-Uniformity Volume Model”. However, in this method, application of different model volume CAD is difficult, and the process of this method is complicated.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide a data converting method and program by which for volume CAD, with the neighboring cell continuity being maintained, without generating a gap or forming an inaccurate triangle, it is possible to configure, from the external data, the cell internal data of which boundary surface can be divided into the triangle meshes that approximate even a curved surface having a large curvature with high accuracy.

According to the present invention, there is provided a method and program of converting three-dimensional shape data into cell internal data, comprising: an oct-tree division step of dividing external data including boundary data of a target object into rectangular parallelepiped cells having boundary planes orthogonal to each other by oct-tree division; a cell classification step of classifying each of the cells into an internal cell positioned inside or outside the target object or a boundary cell including the boundary data; a cut point determination step of determining cut points of edges of the boundary cell based on the boundary data; and a boundary surface determination step of connecting cut points to form a polygon, and determining the polygon as the cell internal data when the number of the determined cut points is no fewer than 3 and no more than 12.

By the method and program, it is possible to store, with a small memory capacity, the external data as hierarchical configuration of the cells that are formed by the oct-tree division of the external data and that have boundary faces orthogonal to each other.

Furthermore, by the cut point determination step and the boundary surface determination step, it is possible to obtain the cell internal data as the polygon with the neighboring cell continuity being maintained, without generating a gap or a deformed triangle.

According to one aspect of the preset invention, the boundary cells having 3, 4, 5 and 6 cut points, respectively are classified into different boundary cell types, respectively. Combinations of edges to be cut are previously set for each of the boundary cell types. The boundary cell type for the boundary cell is determined based on the determined cut points and cut edges by pattern matching. Thereby, it is possible to store the boundary surface by using the boundary cell type and the edge combination. Accordingly, it is possible to store the boundary surface with a small memory capacity while maintaining the neighboring cell continuity.

According to another aspect of the present invention, in the boundary surface determination step, tracing is performed only on the faces of the boundary cell through the cut points to form a closed loop as the polygon. Thereby, the boundary surface can be stored with triangles represented by the cut points.

Preferably, the method and the program further comprises; a triangle division step of dividing the polygon into a plurality of triangles by connecting the cut points, in one or more dividing manners; and a triangle division selecting step of extending each of normal lines included in the external data, selecting from the plurality of triangles, the triangle that has an intersecting point with the each extended normal line and has the least distance from boundary surface part of the each extended normal line, obtaining an angle made between a normal line of the selected triangle and the each extended normal line, and selecting the dividing manner in which a maximum angle difference between the normal line of the triangle and the extended normal line is smallest.

Thereby, even when a boundary surface is a curved surface, it is possible to maintain the neighboring cell continuity and form the divided triangle meshes that can approximate the curved surface without generating a gap and inaccurate triangle.

Other objects, features, and advantages of the present invention will become apparent from the following the detailed description with reference to the drawings.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic illustration two-dimensionally showing a dividing method according to the present invention;

FIG. 2 is a flowchart showing a data converting method and program according to an embodiment of the present invention;

FIGS. 3A through 3C show respective parts of a boundary cell including boundary data according to the embodiment of the present invention;

FIGS. 4A through 4E show examples of boundary cells having 3, 4, 5, and 6 cut points, respectively according to the embodiment of the present invention;

FIGS. 5A and 5B are schematic illustrations showing a method of selecting triangle dividing manner according to the embodiment of the present invention;

FIGS. 6A and 6B show examples of evolved KTC4a and KTC4b for a curved surface having a large curvature according to the embodiment of the present invention;

FIGS. 7A and 7B show other examples of KTC5 and KTC6 according to the embodiment of the present invention;

FIGS. 8A through 8E show examples of boundary cells having 3, 4, 5 and 6 cut points, respectively when boundary surfaces are curved surfaces according to the embodiment of the present invention; and

FIGS. 9A through 9F show examples of boundary cells having 7, 8, 9, 10, 11 and 12, respectively according to the embodiment of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following, a preferred embodiment of the present invention will be described with reference to the drawings.

FIG. 2 is a flowchart of a data converting method and data converting program according to the embodiment of the present invention. As shown in FIG. 2, the data converting method according to the embodiment includes an oct-tree division step (A), a cell classification step (B), a cut point determination step (C), a boundary surface determination step (D), and a triangle division step (E), and a triangle division selecting step (F). Similar to the data converting method, the data converting program according to the embodiment includes an oct-tree division program code (A), a cell classification program code (B), a cut point determination program code (C), a boundary surface determination program code (D), and a triangle division program code (E), and a triangle division selecting program code (F). The following description is mainly directed to the data converting method. However, the data converting program has the same function as the data converting method.

External data 12 input from the outside is polygon data representing a polyhedron, a tetrahedron element data or hexahedron element data used for a finite element method, curved surface data used for three-dimensional CAD or a CG tool, or data that represents other three-dimensional shape by using information configured by a partial plane and curved surfaces.

The external data 12 is not limited to such data (referred to as S-CAD data), and may be (1) data that a person inputs and creates by a V-CAD interface (V-interface), (2) surface digitized data formed by a measuring device, sensor, or digitizer, or (3) volume data including internal information such as voxel data that is used for volume rendering, CT scan or MRI.

In the oct-tree division step (A), the external data 12 that is obtained by an external data obtaining step (not shown in the drawing) and includes boundary data of the target object is divided, by the oct-tree division, into rectangular parallelepiped cells 13 each of which has boundary faces orthogonal to each other. Specifically, in this oct-tree division step (A), space division is performed by modified oct-tree division. In oct-tree representation, i.e., in the space division by the oct-tree division, a standard rectangular parallelepiped 13 including (at least a part of) a target three-dimensional object is divided into eight parallelepipeds, and this division is repeatedly performed until the divided rectangular parallelepiped is completely included in or excluded from each region. By performing this oct-tree division, it is possible to greatly decrease data amount compared to the voxel data representation.

One divided space region that is formed by the oct-tree space division is referred to as a cell 13. The cell 13 is a rectangular parallelepiped having boundary faces orthogonal to each other. One region existing in the space is represented by cell hierarchical configuration, the number of divisions, or resolution. In this manner, the target object is represented as the cells having different sizes that are put on top of each other in the entire space.

The special case of oct-tree division representation where all of the representing cells are congruent rectangular parallelepipeds (having the same number of divisions) is the same as the voxel representation.

In the cell classification step (B), each divided cell 13 is classified into an internal cell 13 a positioned inside or outside the target object or a boundary cell 13 b including the boundary data.

That is, according to the embodiment of the present invention, the modified oct-tree division is used to represent the boundary cell 13 b. In addition, the internal cell 13 a (rectangular parallelepiped) is the maximum size cell that does not contain the boundary of the target object, and the boundary cell 13 b is the cell that includes the boundary information of the external data 12.

In the cut point determination step (C), the cut points 15 of the edges of the boundary cell 13 b are determined based on the boundary data.

In the boundary surface determination step (D), when the number of the determined cut points is no fewer than 3 and no more than 12, the polygon formed by connecting the cut points is determined as the cell internal data of the boundary surface. That is, in the boundary surface determination step (D), the polygon is a closed loop that is formed by tracing on only the cell surface through the cut points of the edges (the polygon is not always included in one plane as shown in FIG. 8D, for example). Alternatively, the boundary cells 13 b having 3, 4, 5 and 6 cut points are respectively classified into different boundary cell types (KTC3, KTC4a, KTC4b, KTC5, KTC6). Combinations of the edges to be cut are previously set for each boundary cell type, and the boundary cell type and the edge combination can be determined by pattern matching based on the determined number of cut points and the cut edges.

In the triangle division step (E), the polygon determined in the boundary surface determination step (D) is divided into a plurality of triangles by connecting cut points, as shown in FIGS. 8B through 8E. Mostly, there are a plurality of triangle dividing manners (i.e., cut point connecting manners).

In the triangle division selecting step (F), each normal line included in the boundary data of the external data 12 is extended, and each of the triangles that has the intersecting point with the extended normal line and has the least distance from the boundary surface part of this normal line is selected. Then, an angle made between the normal line of each selected triangle and the extended normal line is calculated. These processes are performed for each of the triangle dividing manners. Thereafter, the triangle dividing manner in which the maximum angle difference between the normal line of the triangle and the extended normal line becomes smallest is selected from a plurality of the triangle dividing manner.

According to the data converting method of this embodiment, the steps (A) through (F) are repeatedly performed in accordance with necessity. By using the thus-obtained V-CAD data, simulations such as designing, analyzing, processing, assembling, and testing are successively performed. Then, in an output step, the result of the simulation is output as triangle patching data such as CAM or polygon data.

In the following, the embodiment of the present invention will be described in detailed.

The external data 12 including the boundary data of the target object is assumed to be a curved surface or triangle patch (nets or meshes), (hereinbelow, referred to as an input surface). The following description is directed to the data converting method in which the boundary cell types KTC3, KTC4a, KTC4b, KTC5, and KTC6 that are the internal representation types of the volume CAD are formed by converting the information only about the normal lines of the input surface and cut points of the edges of each boundary cell formed by the space division (voxel or oct-tree division). The boundary cell type KTC3, KTC4a, KTC4b, KTC5, or KTC6 is called KT cell or KTC for short.

FIGS. 3A, 3B and 3C show respective parts of the cell including the boundary data. The rectangular parallelepiped cell having the 6 boundary faces orthogonal to each other formed by the oct-tree division has 6 faces, 12 edges (ridgelines), and 8 vertexes.

In FIG. 3A, the face direction marks (face marks) L, R, D, U, B, and F or (1), (2), (3), (4), (5) and (6) means “left”, “right”, “down”, “up”, “backward”, and “forward” when seeing in the positive direction of Z axis. In this order, the marks L, R, D, U, B, and F or (1), (2), (3), (4), (5) and (6) have higher priority.

As shown in FIG. 3B, the marks LD, LU, LB, LF, RD, RU, RB, RF, DB, DF, UB, and UF of two face marks or [1] to [12] designate 12 edges, respectively. In this order [1] to [12], the edges have higher priority.

As shown in FIG. 3C, LDB, LDF, LUB, LUF, RDB, RDF, RUB, and RUF of three face marks or {circle over (1)} to {circle over (8)} designate the vertexes, respectively. In this order {circle over (1)} to {circle over (8)}, the vertexes have higher priority.

These marks and numbers may be arbitrary, and other marks, numbers or the combination thereof suitable to logical computation may be used.

In the following, the marks of the cut edges in KTC shown in FIGS. 3A through 3C are used as the reference marks for the edges.

FIGS. 4A through 4E designate the boundary cells having 3, 4, 5 and 6 cut points, respectively when the boundary surface included in the boundary data is a plane surface. The tracing is started from the cut point of an arbitrary edge, the neighboring edge is then searched for, and the cut point of the start edge is connected to the cut point of the neighboring edge. Thus, tracing is performed until the connection of the cut point returns to the cut point of the start edge. In this manner, a closed loop (polygon) is formed by connecting the cut points. The edges neighboring each other always have one same face mark out of two face marks representing the edge.

In the triangle division step (E), the cut points of the polygon are connected so that the polygon can be divided into a plurality of triangles. In most cases, there are a plurality of triangle dividing manners in which the polygon is divided into a plurality of triangles. Specifically, in the case of KTC4a and KTC4b, there are two triangle dividing manners of dividing the polygon into plural (two) triangles, in the case of KTC5, there are 5 triangle dividing manners, and in the case of KTC6, there are 14 triangle dividing manners. The thus-evolved boundary cell type (hereinbelow, referred to as evolved KTC) results in the different shape depending on the triangle dividing manner. Accordingly, in the triangle division selecting step (F), it is necessary to select the triangle dividing manner that is the best approximation to the boundary data of the external data 12.

FIGS. 5A and 5B are schematic illustrations respectively showing methods of selecting the triangle division selecting manner. FIG. 5A shows an example of the most optimum method, and FIG. 5B shows an example of an inadequate method. According to the embodiment of the present invention, each of normal lines in normal line distribution on the input surface is extended to select one or more triangles on which the intersecting point with the extended normal line exists. Then, the triangle closest to the boundary surface part of the extended normal line is selected from the selected triangles in the cell to obtain an angle of the normal line of the selected triangle made with the extended normal line intersecting the triangle. These processes are performed for each of the normal lines in the in normal line distribution on the input surface. Then, the triangle dividing manner in which the maximum angle deviation (difference) between the normal line of the triangle and the extended normal line intersecting the triangle becomes smallest is selected from the plural triangles.

In the case where the input surface is a parametric surface, the normal line on the input surface is the normal line on each part formed by dividing a UV space by a specified number of divisions, and in the case where the input surface is data of triangle meshes, the normal line on the input surface is each normal line of the triangle meshes.

FIGS. 6A and 6B show examples in the evolved KTC4a and KTC4b that can be applied to a curved surface having a large curvature.

Different from the above-described examples, when the number of cut points is no fewer than 3 and no more than 6, the boundary surface determination step (D) may be performed by the patter matching as follows.

In this embodiment of the present invention, The boundary cells having 3, 4, and 5 cut points are classified into different boundary cell types KTC3, KTC4a, KTC4b, KTC5 and KTC6, respectively. FIGS. 7A and 7B show other examples of KTC5 and KTC6, respectively for reference.

Each KTC has the following characteristics.

In the case of KTC3, the three edges contacting each other via a pivot vertex are always represented by the two face marks selected from the same three face marks. In other words, when the three face marks representing one pivot vertex are cut into two face marks, the respective edges represented by the cut two face marks always contacting (crossing) each other via the pivot vertex. For example, the edges contacting each other via the pivot vertex LUF are LF, LU, and UF selected from LUF.

In the case of KTC4a, each of 4 edges contacting each other via one edge (called pivot edge) is represented by the two face marks that are determined by selecting one face mark from the two face marks of the pivot edge and adding to the selected face mark one face mark of the face marks that are not included in the face marks of the pivot edge and are not included in the face marks of the edges opposite to the pivot edge. For example, LU representing a pivot edge is decomposed into L and U. Then, B and F each of which is not included in L and U representing the pivot edge and is not included in R and D representing the edge opposite to the pivot edge LU are each added to decomposed L and U to form LF, UF, LB and UB that represent 4 edges contacting each other via the pivot edge LU. In the same manner, 4 edges contacting each other via a pivot edge DF are represented by LD, RD, LF, RF, respectively.

In the case of KTC4b, 4 edges perpendicular to one face (pivot face) are represented by two face marks selected from the face marks that excludes the mark of the pivot face and the mark of the face opposite to the pivot face. For example, 4 edges orthogonal to a pivot face L are represented by DB, DF, UB and UF that are the combination between one of D and U opposite to D and one of B and F opposite to B while excluding L and R opposite to L of the pivot face.

In the case of KTC5, when selecting a pivot surface and a pivot vertex on the pivot surface (KTC4b+KTC3), 4 edges are created in the same manner as the KTC4b, and the operation of “4 created edges XOR 3 edges contacting each other via the pivot vertex” is performed (union set minus product set). For example, when a pivot face is B, and a pivot vertex is RDB, the operation of (LD, LU, RD, RU) (for the pivot face B) XOR (RD, DB, RB) (for the pivot vertex RDB) results in (LD, LU, RU, DB, RB).

In the case of KTC6, a pivot vertex and a vertex opposite to the pivot vertex are selected so that the complement of KTC3 for the pivot vertex and KTC3 for the opposite vertex can be determined as 6 edges of KTC6 (complement of KTC3 and opposite KTC3 (12-3-3). For example, when selecting RDF as a pivot vertex, LUB is also selected as the opposite vertex so that the complement of 3 edges of KTC3 for RDF and 3 edges of opposite KTC3 for LUB can be determined as 6 edges of KTC6. In other words, in the case of KTC6, cut points on the complement edges of pivot vertex and the opposite vertex are connected. Loop formation is performed such that an arbitrary edge is selected (for example, RU), and next, the cut point of the edge contacting the selected edge (i.e., edge having the same mark R or U as RU) (in this example, RB or UF) is traced.

Algorism of extracting a surface in a cell requires the reverse procedure of the above-described procedure. In the following, a boundary cell type extraction algorism in the boundary surface determination step (D) will be described.

When cut points substantially correspond to a vertex, these cut points are considered as vertex shrinkage, and the vertex shrinkage is represented by KTC having 3 edges. In a preliminary process, cut target edges having cut points are sorted in the face direction order of LD to UF.

Next, a reverse KTC rule (KTC pattern is determined from cut points) will be described.

In the case of KTC3, as shown in the following Table 1, edge combinations corresponding to respective pivot vertexes are (LD, LB, DB), (LD, LF, DF), (LU, LB, UB), (LU, LF, UF), (RD, RB, DB), (RD, RF, DF), (RU, RB, UB), and (RU, RF, UF) that correspond to vertexes {circle over (1)} to {circle over (8)}. In the case of the vertex shrinkage where cut points are positioned at a vertex, it is checked whether or not the cut points can be classified into one of the combinations, and when the cut points can be classified, the vertex shrinkage is registered. Then, regarding the neighboring cells, the cell of the vertex shrinkage is copied to maintain the consistency or continuity. TABLE 1 KTC3 {circle over (4)} {circle over (5)} {circle over (7)} {circle over (1)}LDB {circle over (2)}LDF {circle over (3)}LUB LUF RDB {circle over (6)}RDF {circle over (8)}RUF LD, LD, LU, LU, RD, RD, RU, RU, LB, LF, LB, LF, RB, RF, RB, RF, DB DF UB UF DB DF UB UF

In the case of KTC4a, there are 12 combinations of 4 edges corresponding to each pivot edge. As shown in the following Table 2, edge combinations corresponding to respective pivot edges are (LB, LF, DB, DF), (LB, LF, UB, UF), (LD, LU, DB, UB), (LD, LU, DF, UF), (RB, RF, DB, DF), (RB, RF, UB, UF), (RD, RU, DB, UB), (RD, RU, DF, UF), (LD, LB, RD, RB), (LD, LF, RD, RF), (LU, LB, RU, RB), and (LU, LF, RU, RF). These edge combinations are previously set, and when 4 cut points (4 edges) are obtained, the pattern matching is performed to determine the boundary cell type and the edge combination. In the case of vertex shrinkage, three edges are checked in the same manner as KTC3. TABLE 2 KTC4a [1]LD [2]LU [3]LB [4]LF [5]RD [6]RU LB, LF, LB, LF, LD, LU, LD, LU, RB, RF, RB, RF, DB, DF UB, UF DB, UB DF, UF DB, DF UB, UF [7]RB [8]RF [9]DB [10]DE [11]UB [12]UF RD, RU, RD, RU, LD, LB, LD, LF, LU, LB, LU, LF, DB, UB DF, UF RD, RB RD, RF RU, RB RU, RF

In the case of KTC4b, as shown in the following Table 3, the pattern matching is performed for 3 combinations of (DB, DF, UB, UF), (LB, LF, RB, RF), and (LD, LU, RD, RU). TABLE 3 KTC4b (1) L (3) D (5) B (2) R (4) U (6) F DB, DF, UB, UF LB, LF, RB, RF LD, LU, RD, RU

In the case of KTC5, as shown in the following Table 4, there are 24 (6×4) combinations that correspond to combinations between a pivot face and a pivot vertex existing on the pivot face. In the case of vertex shrinkage, three edges are checked in the same manner as KTC3. TABLE 4 KTC5 (1) L {circle over (1)}LDB {circle over (2)}LDF {circle over (3)}LUB {circle over (4)}LUF DF, UB, UF, DB, UB, UF, DB, DF, UF, DB, DF, UB, LD, LB LD, LF UD, LB LU, LF (2) R {circle over (5)}RDB {circle over (6)}RDF {circle over (7)}RUB {circle over (8)}RUF DF, UB, UF, DB, UB, UF, DB, DF, UF, DB, DF, UB, RD, RB RD, RF RU, RB RU, RF (3) D {circle over (1)}LDB {circle over (2)}LDF {circle over (5)}RDB {circle over (6)}RDF LF, RB, RF, LB, RB, RF, LB, LF, RF, LB, LF, RB, LD, DB LD, DF RD, DB RD, DF (4) U {circle over (3)}LUB {circle over (4)}LUF {circle over (7)}RUB {circle over (8)}RUF LF, RB, RF, LB, RB, RF, LB, LF, RF, LB, LF, RB, LU, UB LU, UF RU, UB RU, UF (5) B {circle over (1)}LDB {circle over (3)}LUB {circle over (5)}RDB {circle over (7)}RUB LU, RD, RU, LD, RD, RU, LD, LU, RU, LD, LU, RD, LB, DB LB, UB RB, DB RB, UB (6) F {circle over (2)}LDF {circle over (4)}LUF {circle over (6)}RDF {circle over (8)}RUF LU, RD, RU, LD, RD, RU, LD, LU, RU, LD, LU, RD, LF, DF LF, UF RF, DF RF, UF

In the case of KTC6, as shown in the following Table 5, the pattern matching is performed for 4 edge combinations of a pivot vertex and the opposite vertex. TABLE 5 KTC6 {circle over (1)}LDB {circle over (3)}LUB {circle over (4)}LUF {circle over (2)}LDF {circle over (8)}RUF {circle over (6)}RDF {circle over (5)}RDB {circle over (7)}RUB LU, UB, RB, LD, LF, UF, LD, LB, UB, LU, LB, DB, RD, DF, LF RU, RB, DB RU, RF, DF RD, RF, UF

When there is a boundary cell that cannot be classified into the above boundary types KTC3 through KTC6, this boundary cell is left without classifying, or in accordance with necessity, the steps (A) through (F) are repeatedly performed.

FIGS. 8A through 8E show examples of boundary cells having 3, 4, 5 and 6 cut points, respectively when a boundary surface of boundary data is a curved surface. According to the embodiment of the present invention, the boundary cells having 3, 4, 5 and 6 cut points, respectively are classified into evolved boundary surface types KTC3, KTC4a, KTC4b, KTC5, and KTC6, respectively.

FIGS. 9A through 9F show examples of boundary cells having 7, 8, 9, 10, 11 and 12 cut points, respectively when the boundary surface consists of plane faces or the boundary surface is a curved surface.

The above described method of forming a closed loop in the boundary surface determination step (D) can also be applied to the case where the number of cut points is 7, 8, 9, 10, 11 or 12.

As described above, according to the data converting method of the embodiment of the present invention, by the oct-tree division step (A) and the cell classification step (B), it becomes possible to store, with a small memory capacity, external data 12 having cell hierarchical configuration that is formed by dividing the external data 12 of a target object into rectangular parallelepiped cells 13 having boundary planes orthogonal to each other.

Furthermore, cells having 3, 4, 5, and 6 cut points are classified into different boundary cell types KTC3, KTC4a, KTC4b, KTC5 and KTC6, respectively. Combinations of edges (ridgelines) to be cut are previously set for each boundary surface type, and the boundary surface type and the edge combination are determined based on obtained cut points and cut edges by the pattern matching. Alternatively, when the number of cut points is no fewer than 3 and no more than 12, the cut points may be traced and connected to form a closed loop. Therefore, according to the embodiment of the present invention, it is possible to store the boundary surface with the boundary cell type and the edge combination. Further, the data can be stored with a small memory capacity, and neighboring cell continuity can be held.

Furthermore, the polygon formed by the cut points is divided into a plurality of triangles that are formed by connecting the cut points. Then, each of the normal lines included in the boundary data of the external data 12 is extended, and the triangle that has the intersection point with the extended normal line and has the least distance from boundary surface part of the extended normal line is selected. Next, the angle made between the normal line of the selected triangle and the extended normal line is obtained. These processes are performed for each extended normal line. Thereafter, one triangle division manner in which the maximum angle deviation (difference) between the normal line of the triangle and the extended normal line becomes smallest is selected from a plurality of triangle dividing manners. In this manner, even when a boundary surface is a curved surface, it is possible to maintain the neighboring cell continuity and form the divided triangle meshes that can approximate the curved surface without generating a gap and a sharp angle between the triangles.

Thus, the data converting method and program of converting three-dimensional shape data into cell internal data have the following advantage. That is, for volume CAD, with the neighboring cell continuity being maintained, without generating a gap or forming an inaccurate triangle, it is possible to configure, from the external data, the cell internal data of which boundary surface can be divided into the triangle meshes that approximate even a curved surface having a large curvature with high accuracy.

The preferred embodiment of the present invention including several examples is described in the above. However, the present invention is not limited to this embodiment, and various improvements, modifications, and equivalents can be made without departing from scope of the present invention. 

1. A method of converting three-dimensional shape data into cell internal data, comprising: an oct-tree division step of dividing external data including boundary data of a target object into rectangular parallelepiped cells having boundary planes orthogonal to each other by oct-tree division; a cell classification step of classifying each of the cells into an internal cell positioned inside or outside the target object or a boundary cell including the boundary data; a cut point determination step of determining cut points of edges of the boundary cell based on the boundary data; and a boundary surface determination step of connecting cut points to form a polygon, and determining the polygon as the cell internal data when the number of the determined cut points is no fewer than 3 and no more than
 12. 2. The method according to claim 1, wherein in the boundary surface determination step, the boundary cells having 3, 4, 5 and 6 cut points, respectively are classified into different boundary cell types, respectively, combinations of edges to be cut are previously set for each of the boundary cell types, and the boundary cell type for the boundary cell is determined based on the determined cut points and cut edges by pattern matching.
 3. The method according to claim 1, wherein in the boundary surface determination step, tracing is performed only on the faces of the boundary cell through the cut points to form a closed loop as the polygon.
 4. The method according to claim 1, further comprising; a triangle division step of dividing the polygon into a plurality of triangles by connecting the cut points, in one or more dividing manners; and a triangle division selecting step of extending each of normal lines included in the external data, selecting from the plurality of triangles, the triangle that has an intersecting point with the each extended normal line and has the least distance from boundary surface part of the each extended normal line, obtaining an angle made between a normal line of the selected triangle and the each extended normal line, and selecting the dividing manner in which a maximum angle difference between the normal line of the triangle and the extended normal line is smallest.
 5. A program of converting three-dimensional shape data into cell internal data, comprising: an oct-tree division program code of dividing external data including boundary data of a target object into rectangular parallelepiped cells having boundary planes orthogonal to each other by oct-tree division; a cell classification program code of classifying each of the cells into an internal cell positioned inside or outside the target object or a boundary cell including the boundary data; a cut point determination program code of determining cut points of edges of the boundary cell based on the boundary data; and a boundary surface determination program code of connecting cut points to form a polygon, and determining the polygon as the cell internal data when the number of the determined cut points is no fewer than 3 and no more than
 12. 6. The method according to claim 2, further comprising; a triangle division step of dividing the polygon into a plurality of triangles by connecting the cut points, in one or more dividing manners; and a triangle division selecting step of extending each of normal lines included in the external data, selecting from the plurality of triangles, the triangle that has an intersecting point with the each extended normal line and has the least distance from boundary surface part of the each extended normal line, obtaining an angle made between a normal line of the selected triangle and the each extended normal line, and selecting the dividing manner in which a maximum angle difference between the normal line of the triangle and the extended normal line is smallest.
 7. The method according to claim 3, further comprising; a triangle division step of dividing the polygon into a plurality of triangles by connecting the cut points, in one or more dividing manners; and a triangle division selecting step of extending each of normal lines included in the external data, selecting from the plurality of triangles, the triangle that has an intersecting point with the each extended normal line and has the least distance from boundary surface part of the each extended normal line, obtaining an angle made between a normal line of the selected triangle and the each extended normal line, and selecting the dividing manner in which a maximum angle difference between the normal line of the triangle and the extended normal line is smallest. 